package com.ruoyi.verify.mapper;

import com.ruoyi.verify.domain.VerifyReport;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

/**
 * 审核结果Mapper接口
 *
 * @author ruoyi
 * @date 2020-10-24
 */
public interface VerifyReportMapper
{
    /**
     * 查询审核结果
     *
     * @param reportid 审核结果ID
     * @return 审核结果
     */
    public VerifyReport selectVerifyReportById(Long reportid);

    /**
     * 查询审核结果列表
     *
     * @param verifyReport 审核结果
     * @return 审核结果集合
     */
    public List<VerifyReport> selectVerifyReportList(VerifyReport verifyReport);

    /**
     * 查询审核结果
     *
     * @param verifyReport 审核结果
     * @return 审核结果集合
     */
    public HashMap<String,Object> selectVerifyReport(VerifyReport verifyReport);

    /**
     * 查询审核问题合集
     *
     * @param reportid 审核结果id
     * @return 审核问题集合
     */
    public List<HashMap<String,Object>> selectProblemById(String reportid);


    /**
     * 新增审核结果
     *
     * @param verifyReport 审核结果
     * @return 结果
     */
    public int insertVerifyReport(VerifyReport verifyReport);

    /**
     * 插入审核问题
     * @param problemid,content,type
     * @return
     */
    public int insertVerifyProblem(HashMap<String, Object> problem);

    /**
     * 修改审核结果
     *
     * @param verifyReport 审核结果
     * @return 结果
     */
    public int updateVerifyReport(VerifyReport verifyReport);

    /**
     * 修改审核问题
     *
     * @param problem 审核问题
     * @return 结果
     */
    public int updateProblem(HashMap<String, Object> problem);

    /**
     * 删除审核结果
     *
     * @param reportid 审核结果ID
     * @return 结果
     */
    public int deleteVerifyReportById(Long reportid);

    /**
     * 删除审核问题
     *
     * @param reportid 审核结果ID
     * @return 结果
     */
    public int deleteProblemById(Long problemid);

    /**
     * 删除审核问题
     *
     * @param reportid 审核结果ID
     * @return 结果
     */
    public int deleteProblemByReportid(Long reportid);


    /**
     * 批量删除审核结果
     *
     * @param reportids 需要删除的数据ID
     * @return 结果
     */
    public int deleteVerifyReportByIds(String[] reportids);

    /**
     * 判断某计划下的某供应商问卷是否已经提交过
     * @param planid
     * @param vendorcode
     * @return
     */
    public boolean checkCommitExists(@Param("planid") String planid,@Param("vendorname") String vendorname);

    /**
     * 查询某问卷下自己的问题
     */
    public List<HashMap<String,Object>> selectProblemByUserId(@Param("planid") String planid,@Param("memberid") String memberid);

    /**
     * 手动获取审核人员问题
     */
    public List<Map<String,Object>> selectProblemListByClick(String planid);

    /**
     *
     * 通过结果id修改主计划状态
     */
    public int updateMainVerifyPlanStatus(String reportid);


    /**
     *
     * 通过结果id修改主计划状态
     */
    public int updateVerifyRequirementStatus(String reportid);
}
